[INFO] cloning repository https://github.com/pit-rpg/Viz
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/pit-rpg/Viz" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fpit-rpg%2FViz", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fpit-rpg%2FViz'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 98d6d74b380fd7e5e6dbfa59df75f2bf91a3939d
[INFO] checking pit-rpg/Viz against master#c0bb140a37c81cf59a0b40c21c9413059644e294 for pr-129249-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fpit-rpg%2FViz" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/pit-rpg/Viz
[INFO] finished tweaking git repo https://github.com/pit-rpg/Viz
[INFO] tweaked toml for git repo https://github.com/pit-rpg/Viz written to /workspace/builds/worker-5-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/pit-rpg/Viz on toolchain c0bb140a37c81cf59a0b40c21c9413059644e294
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c0bb140a37c81cf59a0b40c21c9413059644e294" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/pit-rpg/Viz already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c0bb140a37c81cf59a0b40c21c9413059644e294" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: Cargo.toml: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024`
[INFO] [stderr] warning: `project` (manifest) generated 1 warning
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded stb_truetype v0.3.0
[INFO] [stderr]   Downloaded bitflags v1.2.0
[INFO] [stderr]   Downloaded rusttype v0.8.1
[INFO] [stderr]   Downloaded tar v0.4.26
[INFO] [stderr]   Downloaded obj v0.9.0
[INFO] [stderr]   Downloaded pkg-config v0.3.16
[INFO] [stderr]   Downloaded proc-macro-hack v0.5.10
[INFO] [stderr]   Downloaded pathdiff v0.1.0
[INFO] [stderr]   Downloaded shrev v1.1.1
[INFO] [stderr]   Downloaded downcast-rs v1.1.0
[INFO] [stderr]   Downloaded xattr v0.2.2
[INFO] [stderr]   Downloaded tuple_utils v0.3.0
[INFO] [stderr]   Downloaded glutin_glx_sys v0.1.5
[INFO] [stderr]   Downloaded const-random v0.1.6
[INFO] [stderr]   Downloaded gltf-derive v0.14.0
[INFO] [stderr]   Downloaded const-random-macro v0.1.6
[INFO] [stderr]   Downloaded glutin_wgl_sys v0.1.3
[INFO] [stderr]   Downloaded glutin_emscripten_sys v0.1.0
[INFO] [stderr]   Downloaded glutin_egl_sys v0.1.3
[INFO] [stderr]   Downloaded rgb v0.8.14
[INFO] [stderr]   Downloaded glutin_gles2_sys v0.1.3
[INFO] [stderr]   Downloaded approx v0.1.1
[INFO] [stderr]   Downloaded filetime v0.2.7
[INFO] [stderr]   Downloaded hibitset v0.6.2
[INFO] [stderr]   Downloaded gl_generator v0.11.0
[INFO] [stderr]   Downloaded ahash v0.2.16
[INFO] [stderr]   Downloaded colored v1.8.0
[INFO] [stderr]   Downloaded gltf-json v0.14.0
[INFO] [stderr]   Downloaded png v0.14.1
[INFO] [stderr]   Downloaded proc-macro2 v1.0.5
[INFO] [stderr]   Downloaded derivative v1.0.3
[INFO] [stderr]   Downloaded jpeg-decoder v0.1.16
[INFO] [stderr]   Downloaded winconsole v0.10.0
[INFO] [stderr]   Downloaded serde_derive v1.0.101
[INFO] [stderr]   Downloaded glutin v0.21.1
[INFO] [stderr]   Downloaded cgmath v0.16.1
[INFO] [stderr]   Downloaded x11-dl v2.18.4
[INFO] [stderr]   Downloaded backtrace v0.3.38
[INFO] [stderr]   Downloaded gltf v0.14.0
[INFO] [stderr]   Downloaded shred v0.9.3
[INFO] [stderr]   Downloaded rayon-core v1.6.0
[INFO] [stderr]   Downloaded hashbrown v0.6.1
[INFO] [stderr]   Downloaded atom v0.3.5
[INFO] [stderr]   Downloaded objc v0.2.6
[INFO] [stderr]   Downloaded serde v1.0.101
[INFO] [stderr]   Downloaded specs v0.15.1
[INFO] [stderr]   Downloaded rayon v1.2.0
[INFO] [stderr]   Downloaded image v0.22.3
[INFO] [stderr]   Downloaded winit v0.19.3
[INFO] [stderr]   Downloaded typer v0.1.1
[INFO] [stderr]   Downloaded image v0.21.3
[INFO] [stderr]   Downloaded serde_json v1.0.41
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3e793bdf10248eb2ddbd6b0faebed8155c11b4589982e2893733958d93e8d540" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] ac74ba0ae6dd72fe4a85f55d5e2880a4d5f172a362c91370be31422028c9b78a
[INFO] running `Command { std: "docker" "start" "ac74ba0ae6dd72fe4a85f55d5e2880a4d5f172a362c91370be31422028c9b78a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "ac74ba0ae6dd72fe4a85f55d5e2880a4d5f172a362c91370be31422028c9b78a" "/opt/rustwide/cargo-home/bin/cargo" "+c0bb140a37c81cf59a0b40c21c9413059644e294" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "ac74ba0ae6dd72fe4a85f55d5e2880a4d5f172a362c91370be31422028c9b78a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "ac74ba0ae6dd72fe4a85f55d5e2880a4d5f172a362c91370be31422028c9b78a" "/opt/rustwide/cargo-home/bin/cargo" "+c0bb140a37c81cf59a0b40c21c9413059644e294" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr] warning: Cargo.toml: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024`
[INFO] [stderr] warning: `project` (manifest) generated 1 warning
[INFO] [stderr]    Compiling autocfg v0.1.6
[INFO] [stderr]    Compiling libc v0.2.62
[INFO] [stderr]     Checking cfg-if v0.1.10
[INFO] [stderr]     Checking lazy_static v1.4.0
[INFO] [stderr]    Compiling xml-rs v0.8.0
[INFO] [stderr]    Compiling proc-macro2 v1.0.5
[INFO] [stderr]    Compiling bitflags v1.2.0
[INFO] [stderr]    Compiling getrandom v0.1.12
[INFO] [stderr]     Checking scopeguard v1.0.0
[INFO] [stderr]    Compiling byteorder v1.3.2
[INFO] [stderr]    Compiling syn v1.0.5
[INFO] [stderr]    Compiling log v0.4.8
[INFO] [stderr]    Compiling arrayvec v0.4.12
[INFO] [stderr]    Compiling memoffset v0.5.1
[INFO] [stderr]     Checking nodrop v0.1.14
[INFO] [stderr]    Compiling cc v1.0.45
[INFO] [stderr]     Checking rand_core v0.4.2
[INFO] [stderr]     Checking crossbeam-utils v0.6.6
[INFO] [stderr]    Compiling rayon-core v1.6.0
[INFO] [stderr]    Compiling ppv-lite86 v0.2.5
[INFO] [stderr]    Compiling syn v0.15.44
[INFO] [stderr]    Compiling nix v0.14.1
[INFO] [stderr]     Checking either v1.5.3
[INFO] [stderr]    Compiling num-traits v0.2.8
[INFO] [stderr]    Compiling num-integer v0.1.41
[INFO] [stderr]     Checking adler32 v1.0.4
[INFO] [stderr]     Checking void v1.0.2
[INFO] [stderr]     Checking stb_truetype v0.3.0
[INFO] [stderr]     Checking arrayvec v0.5.1
[INFO] [stderr]     Checking rand_core v0.3.1
[INFO] [stderr]    Compiling num-iter v0.1.39
[INFO] [stderr]     Checking crossbeam-queue v0.1.2
[INFO] [stderr]    Compiling pkg-config v0.3.16
[INFO] [stderr]     Checking smallvec v0.6.10
[INFO] [stderr]    Compiling maybe-uninit v2.0.0
[INFO] [stderr]     Checking deflate v0.7.20
[INFO] [stderr]     Checking inflate v0.4.5
[INFO] [stderr]    Compiling num-rational v0.2.2
[INFO] [stderr]    Compiling quote v1.0.2
[INFO] [stderr]     Checking num_cpus v1.10.1
[INFO] [stderr]    Compiling wayland-scanner v0.21.13
[INFO] [stderr]    Compiling c2-chacha v0.2.2
[INFO] [stderr]    Compiling gl_generator v0.11.0
[INFO] [stderr]     Checking crossbeam-epoch v0.7.2
[INFO] [stderr]     Checking same-file v1.0.5
[INFO] [stderr]     Checking lzw v0.10.0
[INFO] [stderr]    Compiling rand_core v0.5.1
[INFO] [stderr]    Compiling serde v1.0.101
[INFO] [stderr]    Compiling x11-dl v2.18.4
[INFO] [stderr]     Checking downcast-rs v1.1.0
[INFO] [stderr]    Compiling ryu v1.0.0
[INFO] [stderr]     Checking walkdir v2.2.9
[INFO] [stderr]     Checking crossbeam-deque v0.7.1
[INFO] [stderr]    Compiling parking_lot_core v0.6.2
[INFO] [stderr]    Compiling rand_chacha v0.2.1
[INFO] [stderr]    Compiling libloading v0.5.2
[INFO] [stderr]    Compiling rand_chacha v0.1.1
[INFO] [stderr]    Compiling hashbrown v0.6.1
[INFO] [stderr]    Compiling rand_pcg v0.1.2
[INFO] [stderr]    Compiling winapi v0.3.8
[INFO] [stderr]    Compiling cgmath v0.16.1
[INFO] [stderr]     Checking xdg v2.2.0
[INFO] [stderr]     Checking approx v0.3.2
[INFO] [stderr]     Checking ordered-float v1.0.2
[INFO] [stderr]     Checking line_drawing v0.7.0
[INFO] [stderr]    Compiling rand v0.7.2
[INFO] [stderr]     Checking rusttype v0.8.1
[INFO] [stderr]    Compiling glutin_glx_sys v0.1.5
[INFO] [stderr]    Compiling glutin_egl_sys v0.1.3
[INFO] [stderr]     Checking num-traits v0.1.43
[INFO] [stderr]    Compiling crc32fast v1.2.0
[INFO] [stderr]    Compiling memchr v2.2.1
[INFO] [stderr]    Compiling parking_lot v0.9.0
[INFO] [stderr]    Compiling wayland-client v0.21.13
[INFO] [stderr]    Compiling wayland-protocols v0.21.13
[INFO] [stderr]    Compiling gl_generator v0.14.0
[INFO] [stderr]     Checking dlib v0.4.1
[INFO] [stderr]     Checking wayland-sys v0.21.13
[INFO] [stderr]     Checking rayon v1.2.0
[INFO] [stderr]     Checking rand v0.4.6
[INFO] [stderr]     Checking memmap v0.7.0
[INFO] [stderr]    Compiling rand v0.6.5
[INFO] [stderr]     Checking rusttype v0.7.9
[INFO] [stderr]     Checking lock_api v0.3.1
[INFO] [stderr]     Checking andrew v0.2.1
[INFO] [stderr]     Checking itoa v0.4.4
[INFO] [stderr]     Checking approx v0.1.1
[INFO] [stderr]    Compiling gl v0.14.0
[INFO] [stderr]     Checking png v0.14.1
[INFO] [stderr]     Checking rand_os v0.1.3
[INFO] [stderr]     Checking shared_library v0.1.9
[INFO] [stderr]     Checking rand_hc v0.1.0
[INFO] [stderr]     Checking rand_isaac v0.1.1
[INFO] [stderr]     Checking rand_xorshift v0.1.1
[INFO] [stderr]     Checking rand_jitter v0.1.4
[INFO] [stderr]     Checking atom v0.3.5
[INFO] [stderr]     Checking rgb v0.8.14
[INFO] [stderr]     Checking percent-encoding v2.1.0
[INFO] [stderr]     Checking unicode-width v0.1.6
[INFO] [stderr]     Checking mopa v0.2.2
[INFO] [stderr]     Checking color_quant v1.0.1
[INFO] [stderr]     Checking textwrap v0.11.0
[INFO] [stderr]     Checking osmesa-sys v0.1.2
[INFO] [stderr]     Checking png v0.15.0
[INFO] [stderr]     Checking aho-corasick v0.7.6
[INFO] [stderr]     Checking jpeg-decoder v0.1.16
[INFO] [stderr]     Checking gif v0.10.3
[INFO] [stderr]     Checking hibitset v0.6.2
[INFO] [stderr]     Checking atty v0.2.13
[INFO] [stderr]     Checking xattr v0.2.2
[INFO] [stderr]     Checking filetime v0.2.7
[INFO] [stderr]     Checking base64 v0.10.1
[INFO] [stderr]     Checking thread_local v0.3.6
[INFO] [stderr]     Checking shrev v1.1.1
[INFO] [stderr]     Checking unicode-segmentation v1.3.0
[INFO] [stderr]     Checking regex-syntax v0.6.12
[INFO] [stderr]     Checking scoped_threadpool v0.1.9
[INFO] [stderr]     Checking vec_map v0.8.1
[INFO] [stderr]     Checking ansi_term v0.11.0
[INFO] [stderr]     Checking strsim v0.8.0
[INFO] [stderr]     Checking tuple_utils v0.3.0
[INFO] [stderr]     Checking image v0.21.3
[INFO] [stderr]     Checking tar v0.4.26
[INFO] [stderr]     Checking clap v2.33.0
[INFO] [stderr]     Checking heck v0.3.1
[INFO] [stderr]     Checking typer v0.1.1
[INFO] [stderr]     Checking pathdiff v0.1.0
[INFO] [stderr]     Checking obj v0.9.0
[INFO] [stderr]     Checking wayland-commons v0.21.13
[INFO] [stderr]     Checking uuid v0.7.4
[INFO] [stderr]    Compiling derivative v1.0.3
[INFO] [stderr]    Compiling num-derive v0.2.5
[INFO] [stderr]    Compiling proc-macro-hack v0.5.10
[INFO] [stderr]    Compiling serde_derive v1.0.101
[INFO] [stderr]    Compiling gltf-derive v0.14.0
[INFO] [stderr]    Compiling const-random-macro v0.1.6
[INFO] [stderr]     Checking winconsole v0.10.0
[INFO] [stderr]     Checking const-random v0.1.6
[INFO] [stderr]     Checking ahash v0.2.16
[INFO] [stderr]     Checking colored v1.8.0
[INFO] [stderr]     Checking shred v0.9.3
[INFO] [stderr]     Checking tiff v0.3.1
[INFO] [stderr]     Checking regex v1.3.1
[INFO] [stderr]     Checking specs v0.15.1
[INFO] [stderr]     Checking image v0.22.3
[INFO] [stderr]     Checking serde_json v1.0.41
[INFO] [stderr]     Checking gltf-json v0.14.0
[INFO] [stderr]     Checking gltf v0.14.0
[INFO] [stderr]     Checking smithay-client-toolkit v0.4.6
[INFO] [stderr]     Checking winit v0.19.3
[INFO] [stderr]     Checking glutin v0.21.1
[INFO] [stderr]     Checking project v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `self::uuid::Uuid`
[INFO] [stdout]  --> src/core/material.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use self::uuid::Uuid;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `UniformItem`
[INFO] [stdout]  --> src/core/material.rs:6:69
[INFO] [stdout]   |
[INFO] [stdout] 6 | use super::{Blending, ShaderProgram, ShaderTag, ToUniform, Uniform, UniformItem, UniformName};
[INFO] [stdout]   |                                                                     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashSet`
[INFO] [stdout]  --> src/core/material.rs:8:33
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::collections::{HashMap, HashSet};
[INFO] [stdout]   |                                 ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/core/texture.rs:108:49
[INFO] [stdout]     |
[INFO] [stdout] 108 |     pub fn load(&mut self) -> Result<&TextureData, (String)> {
[INFO] [stdout]     |                                                    ^      ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 108 -     pub fn load(&mut self) -> Result<&TextureData, (String)> {
[INFO] [stdout] 108 +     pub fn load(&mut self) -> Result<&TextureData, String > {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ShaderProgram`
[INFO] [stdout]  --> src/render/open_gl/gl_material.rs:6:22
[INFO] [stdout]   |
[INFO] [stdout] 6 | use core::{Material, ShaderProgram};
[INFO] [stdout]   |                      ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashSet`
[INFO] [stdout]  --> src/helpers/load_gltf.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::collections::HashSet;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ShaderProgram`
[INFO] [stdout]   --> src/helpers/load_gltf.rs:59:2
[INFO] [stdout]    |
[INFO] [stdout] 59 |     ShaderProgram,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self::uuid::Uuid`
[INFO] [stdout]  --> src/core/material.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use self::uuid::Uuid;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `UniformItem`
[INFO] [stdout]  --> src/core/material.rs:6:69
[INFO] [stdout]   |
[INFO] [stdout] 6 | use super::{Blending, ShaderProgram, ShaderTag, ToUniform, Uniform, UniformItem, UniformName};
[INFO] [stdout]   |                                                                     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashSet`
[INFO] [stdout]  --> src/core/material.rs:8:33
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::collections::{HashMap, HashSet};
[INFO] [stdout]   |                                 ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/core/texture.rs:108:49
[INFO] [stdout]     |
[INFO] [stdout] 108 |     pub fn load(&mut self) -> Result<&TextureData, (String)> {
[INFO] [stdout]     |                                                    ^      ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 108 -     pub fn load(&mut self) -> Result<&TextureData, (String)> {
[INFO] [stdout] 108 +     pub fn load(&mut self) -> Result<&TextureData, String > {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ShaderProgram`
[INFO] [stdout]  --> src/render/open_gl/gl_material.rs:6:22
[INFO] [stdout]   |
[INFO] [stdout] 6 | use core::{Material, ShaderProgram};
[INFO] [stdout]   |                      ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashSet`
[INFO] [stdout]  --> src/helpers/load_gltf.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::collections::HashSet;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ShaderProgram`
[INFO] [stdout]   --> src/helpers/load_gltf.rs:59:2
[INFO] [stdout]    |
[INFO] [stdout] 59 |     ShaderProgram,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]   --> src/helpers/nums.rs:26:2
[INFO] [stdout]    |
[INFO] [stdout] 26 |     #[inline] fn zero() -> Self;
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout]    = note: `#[warn(unused_attributes)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]   --> src/helpers/nums.rs:27:2
[INFO] [stdout]    |
[INFO] [stdout] 27 |     #[inline] fn one() -> Self;
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]   --> src/helpers/nums.rs:28:2
[INFO] [stdout]    |
[INFO] [stdout] 28 |     #[inline] fn two() -> Self;
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]   --> src/helpers/nums.rs:29:2
[INFO] [stdout]    |
[INFO] [stdout] 29 |     #[inline] fn random() -> Self;
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]   --> src/helpers/nums.rs:30:2
[INFO] [stdout]    |
[INFO] [stdout] 30 |     #[inline] fn sqrt(&self) -> Self;
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]   --> src/helpers/nums.rs:31:2
[INFO] [stdout]    |
[INFO] [stdout] 31 |     #[inline] fn abs(&self) -> Self;
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]   --> src/helpers/nums.rs:32:2
[INFO] [stdout]    |
[INFO] [stdout] 32 |     #[inline] fn round(&self) -> Self;
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]   --> src/helpers/nums.rs:33:2
[INFO] [stdout]    |
[INFO] [stdout] 33 |     #[inline] fn floor(&self) -> Self;
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]   --> src/helpers/nums.rs:34:2
[INFO] [stdout]    |
[INFO] [stdout] 34 |     #[inline] fn ceil(&self) -> Self;
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]   --> src/helpers/nums.rs:35:2
[INFO] [stdout]    |
[INFO] [stdout] 35 |     #[inline] fn cos(&self) -> Self;
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]   --> src/helpers/nums.rs:36:2
[INFO] [stdout]    |
[INFO] [stdout] 36 |     #[inline] fn sin(&self) -> Self;
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]   --> src/helpers/nums.rs:37:2
[INFO] [stdout]    |
[INFO] [stdout] 37 |     #[inline] fn acos(&self) -> Self;
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]   --> src/helpers/nums.rs:38:2
[INFO] [stdout]    |
[INFO] [stdout] 38 |     #[inline] fn asin(&self) -> Self;
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]   --> src/helpers/nums.rs:39:2
[INFO] [stdout]    |
[INFO] [stdout] 39 |     #[inline] fn min(&self, other:Self) -> Self;
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]   --> src/helpers/nums.rs:40:2
[INFO] [stdout]    |
[INFO] [stdout] 40 |     #[inline] fn max(&self, other:Self) -> Self;
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]   --> src/helpers/nums.rs:41:2
[INFO] [stdout]    |
[INFO] [stdout] 41 |     #[inline] fn max_val() -> Self;
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]   --> src/helpers/nums.rs:42:2
[INFO] [stdout]    |
[INFO] [stdout] 42 |     #[inline] fn min_val() -> Self;
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]   --> src/helpers/nums.rs:43:2
[INFO] [stdout]    |
[INFO] [stdout] 43 |     #[inline] fn atan2(y:Self, x:Self) -> Self;
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]   --> src/helpers/nums.rs:44:2
[INFO] [stdout]    |
[INFO] [stdout] 44 |     #[inline] fn epsilon() -> Self;
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]   --> src/helpers/nums.rs:45:2
[INFO] [stdout]    |
[INFO] [stdout] 45 |     #[inline] fn clamp(&self, min: Self, max: Self) -> Self;
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]   --> src/helpers/nums.rs:46:2
[INFO] [stdout]    |
[INFO] [stdout] 46 |     #[inline] fn from_f32(n: f32) -> Self;
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]   --> src/helpers/nums.rs:47:2
[INFO] [stdout]    |
[INFO] [stdout] 47 |     #[inline] fn from_f64(n: f64) -> Self;
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]   --> src/helpers/nums.rs:26:2
[INFO] [stdout]    |
[INFO] [stdout] 26 |     #[inline] fn zero() -> Self;
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout]    = note: `#[warn(unused_attributes)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]   --> src/helpers/nums.rs:27:2
[INFO] [stdout]    |
[INFO] [stdout] 27 |     #[inline] fn one() -> Self;
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]   --> src/helpers/nums.rs:28:2
[INFO] [stdout]    |
[INFO] [stdout] 28 |     #[inline] fn two() -> Self;
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]   --> src/helpers/nums.rs:29:2
[INFO] [stdout]    |
[INFO] [stdout] 29 |     #[inline] fn random() -> Self;
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]   --> src/helpers/nums.rs:30:2
[INFO] [stdout]    |
[INFO] [stdout] 30 |     #[inline] fn sqrt(&self) -> Self;
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]   --> src/helpers/nums.rs:31:2
[INFO] [stdout]    |
[INFO] [stdout] 31 |     #[inline] fn abs(&self) -> Self;
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]   --> src/helpers/nums.rs:32:2
[INFO] [stdout]    |
[INFO] [stdout] 32 |     #[inline] fn round(&self) -> Self;
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]   --> src/helpers/nums.rs:33:2
[INFO] [stdout]    |
[INFO] [stdout] 33 |     #[inline] fn floor(&self) -> Self;
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]   --> src/helpers/nums.rs:34:2
[INFO] [stdout]    |
[INFO] [stdout] 34 |     #[inline] fn ceil(&self) -> Self;
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]   --> src/helpers/nums.rs:35:2
[INFO] [stdout]    |
[INFO] [stdout] 35 |     #[inline] fn cos(&self) -> Self;
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]   --> src/helpers/nums.rs:36:2
[INFO] [stdout]    |
[INFO] [stdout] 36 |     #[inline] fn sin(&self) -> Self;
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]   --> src/helpers/nums.rs:37:2
[INFO] [stdout]    |
[INFO] [stdout] 37 |     #[inline] fn acos(&self) -> Self;
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]   --> src/helpers/nums.rs:38:2
[INFO] [stdout]    |
[INFO] [stdout] 38 |     #[inline] fn asin(&self) -> Self;
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]   --> src/helpers/nums.rs:39:2
[INFO] [stdout]    |
[INFO] [stdout] 39 |     #[inline] fn min(&self, other:Self) -> Self;
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]   --> src/helpers/nums.rs:40:2
[INFO] [stdout]    |
[INFO] [stdout] 40 |     #[inline] fn max(&self, other:Self) -> Self;
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]   --> src/helpers/nums.rs:41:2
[INFO] [stdout]    |
[INFO] [stdout] 41 |     #[inline] fn max_val() -> Self;
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]   --> src/helpers/nums.rs:42:2
[INFO] [stdout]    |
[INFO] [stdout] 42 |     #[inline] fn min_val() -> Self;
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]   --> src/helpers/nums.rs:43:2
[INFO] [stdout]    |
[INFO] [stdout] 43 |     #[inline] fn atan2(y:Self, x:Self) -> Self;
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]   --> src/helpers/nums.rs:44:2
[INFO] [stdout]    |
[INFO] [stdout] 44 |     #[inline] fn epsilon() -> Self;
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]   --> src/helpers/nums.rs:45:2
[INFO] [stdout]    |
[INFO] [stdout] 45 |     #[inline] fn clamp(&self, min: Self, max: Self) -> Self;
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]   --> src/helpers/nums.rs:46:2
[INFO] [stdout]    |
[INFO] [stdout] 46 |     #[inline] fn from_f32(n: f32) -> Self;
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]   --> src/helpers/nums.rs:47:2
[INFO] [stdout]    |
[INFO] [stdout] 47 |     #[inline] fn from_f64(n: f64) -> Self;
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/helpers/load_gltf.rs:81:74
[INFO] [stdout]    |
[INFO] [stdout] 81 | pub fn load_gltf(world: &mut World, path: PathBuf) -> Result<Entity, Box<StdError>> {
[INFO] [stdout]    |                                                                          ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 81 | pub fn load_gltf(world: &mut World, path: PathBuf) -> Result<Entity, Box<dyn StdError>> {
[INFO] [stdout]    |                                                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/helpers/load_gltf.rs:81:74
[INFO] [stdout]    |
[INFO] [stdout] 81 | pub fn load_gltf(world: &mut World, path: PathBuf) -> Result<Entity, Box<StdError>> {
[INFO] [stdout]    |                                                                          ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 81 | pub fn load_gltf(world: &mut World, path: PathBuf) -> Result<Entity, Box<dyn StdError>> {
[INFO] [stdout]    |                                                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/core/buffer_geometry.rs:395:52
[INFO] [stdout]     |
[INFO] [stdout] 395 |     pub fn update_box3 (&mut self) -> Result <(), Box<Error>> {
[INFO] [stdout]     |                                                       ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 395 |     pub fn update_box3 (&mut self) -> Result <(), Box<dyn Error>> {
[INFO] [stdout]     |                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/core/buffer_geometry.rs:409:56
[INFO] [stdout]     |
[INFO] [stdout] 409 |     pub fn get_b_box(&mut self) -> Result<BBox3<f32>, Box<Error>> {
[INFO] [stdout]     |                                                           ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 409 |     pub fn get_b_box(&mut self) -> Result<BBox3<f32>, Box<dyn Error>> {
[INFO] [stdout]     |                                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/core/buffer_geometry.rs:395:52
[INFO] [stdout]     |
[INFO] [stdout] 395 |     pub fn update_box3 (&mut self) -> Result <(), Box<Error>> {
[INFO] [stdout]     |                                                       ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 395 |     pub fn update_box3 (&mut self) -> Result <(), Box<dyn Error>> {
[INFO] [stdout]     |                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/core/buffer_geometry.rs:409:56
[INFO] [stdout]     |
[INFO] [stdout] 409 |     pub fn get_b_box(&mut self) -> Result<BBox3<f32>, Box<Error>> {
[INFO] [stdout]     |                                                           ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 409 |     pub fn get_b_box(&mut self) -> Result<BBox3<f32>, Box<dyn Error>> {
[INFO] [stdout]     |                                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `len` is never read
[INFO] [stdout]    --> src/core/buffer_geometry.rs:272:17
[INFO] [stdout]     |
[INFO] [stdout] 272 |         let mut len = 0;
[INFO] [stdout]     |                       ^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 279 |                 len = positions.len();
[INFO] [stdout]     |                 --------------------- `len` is overwritten here before the previous value is read
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `len` is never read
[INFO] [stdout]    --> src/core/buffer_geometry.rs:272:17
[INFO] [stdout]     |
[INFO] [stdout] 272 |         let mut len = 0;
[INFO] [stdout]     |                       ^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 279 |                 len = positions.len();
[INFO] [stdout]     |                 --------------------- `len` is overwritten here before the previous value is read
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `parent_transform` is never read
[INFO] [stdout]   --> src/core/systems/system_transform.rs:59:30
[INFO] [stdout]    |
[INFO] [stdout] 59 |         let mut parent_transform = Transform::default();
[INFO] [stdout]    |                                    ^^^^^^^^^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 62 |             parent_transform = Transform::default();
[INFO] [stdout]    |             --------------------------------------- `parent_transform` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `parent_transform` is never read
[INFO] [stdout]   --> src/core/systems/system_transform.rs:59:30
[INFO] [stdout]    |
[INFO] [stdout] 59 |         let mut parent_transform = Transform::default();
[INFO] [stdout]    |                                    ^^^^^^^^^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 62 |             parent_transform = Transform::default();
[INFO] [stdout]    |             --------------------------------------- `parent_transform` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `material_index`
[INFO] [stdout]    --> src/helpers/geometry_generators.rs:115:142
[INFO] [stdout]     |
[INFO] [stdout] 115 | ...e, grid_y: usize, material_index: i32| {
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_material_index`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/helpers/geometry_generators.rs:301:6
[INFO] [stdout]     |
[INFO] [stdout] 301 |     let mut vertices = vec![
[INFO] [stdout]     |         ----^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/helpers/geometry_generators.rs:307:6
[INFO] [stdout]     |
[INFO] [stdout] 307 |     let mut indices = vec![
[INFO] [stdout]     |         ----^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `material_index`
[INFO] [stdout]    --> src/helpers/geometry_generators.rs:115:142
[INFO] [stdout]     |
[INFO] [stdout] 115 | ...e, grid_y: usize, material_index: i32| {
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_material_index`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/helpers/geometry_generators.rs:301:6
[INFO] [stdout]     |
[INFO] [stdout] 301 |     let mut vertices = vec![
[INFO] [stdout]     |         ----^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/helpers/geometry_generators.rs:307:6
[INFO] [stdout]     |
[INFO] [stdout] 307 |     let mut indices = vec![
[INFO] [stdout]     |         ----^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `center` and `radius` are never read
[INFO] [stdout]   --> src/core/boundings.rs:84:2
[INFO] [stdout]    |
[INFO] [stdout] 80 | pub struct BSphare<T>
[INFO] [stdout]    |            ------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 84 |     center: Vector3<T>,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 85 |     radius: T,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `unbind` is never used
[INFO] [stdout]   --> src/render/open_gl/gl_material.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub trait GLMaterial
[INFO] [stdout]    |           ---------- method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 22 |     fn unbind(&self) {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `depth_test` and `stencil_test` are never read
[INFO] [stdout]   --> src/render/open_gl/systems/system_render.rs:72:2
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub struct RenderSystem {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 72 |     depth_test: bool,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 73 |     stencil_test: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `unbind` is never used
[INFO] [stdout]   --> src/render/open_gl/gl_texture.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub trait GLTexture {
[INFO] [stdout]    |           --------- method in this trait
[INFO] [stdout] 29 |     fn bind(&mut self, hash_map: &mut GLTextureIDs) -> u32;
[INFO] [stdout] 30 |     fn unbind(&self);
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `unbind` is never used
[INFO] [stdout]   --> src/render/open_gl/gl_render_buffer.rs:31:5
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub trait GLRenderBuffer {
[INFO] [stdout]    |           -------------- method in this trait
[INFO] [stdout] 30 |     fn bind(&mut self, hash_map: &mut GLRenderBufferIDs)-> u32;
[INFO] [stdout] 31 |     fn unbind(&self);
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `unbind` is never used
[INFO] [stdout]   --> src/render/open_gl/gl_frame_buffer.rs:37:5
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub trait GLFrameBuffer {
[INFO] [stdout]    |           ------------- method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 37 |     fn unbind(&self);
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `index_old` is never read
[INFO] [stdout]   --> src/helpers/load_obj.rs:10:2
[INFO] [stdout]    |
[INFO] [stdout]  9 | struct TmpIndex {
[INFO] [stdout]    |        -------- field in this struct
[INFO] [stdout] 10 |     index_old: usize,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TmpIndex` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `path`, `images`, and `textures` are never read
[INFO] [stdout]   --> src/helpers/load_gltf.rs:71:2
[INFO] [stdout]    |
[INFO] [stdout] 70 | struct Context {
[INFO] [stdout]    |        ------- fields in this struct
[INFO] [stdout] 71 |     path: PathBuf,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 72 |     doc: Document,
[INFO] [stdout] 73 |     images: Vec<TextureData>,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 74 |     textures: Vec<SharedTexture2D>,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `center` and `radius` are never read
[INFO] [stdout]   --> src/core/boundings.rs:84:2
[INFO] [stdout]    |
[INFO] [stdout] 80 | pub struct BSphare<T>
[INFO] [stdout]    |            ------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 84 |     center: Vector3<T>,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 85 |     radius: T,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `unbind` is never used
[INFO] [stdout]   --> src/render/open_gl/gl_material.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub trait GLMaterial
[INFO] [stdout]    |           ---------- method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 22 |     fn unbind(&self) {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `depth_test` and `stencil_test` are never read
[INFO] [stdout]   --> src/render/open_gl/systems/system_render.rs:72:2
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub struct RenderSystem {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 72 |     depth_test: bool,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 73 |     stencil_test: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `unbind` is never used
[INFO] [stdout]   --> src/render/open_gl/gl_texture.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub trait GLTexture {
[INFO] [stdout]    |           --------- method in this trait
[INFO] [stdout] 29 |     fn bind(&mut self, hash_map: &mut GLTextureIDs) -> u32;
[INFO] [stdout] 30 |     fn unbind(&self);
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `unbind` is never used
[INFO] [stdout]   --> src/render/open_gl/gl_render_buffer.rs:31:5
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub trait GLRenderBuffer {
[INFO] [stdout]    |           -------------- method in this trait
[INFO] [stdout] 30 |     fn bind(&mut self, hash_map: &mut GLRenderBufferIDs)-> u32;
[INFO] [stdout] 31 |     fn unbind(&self);
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `unbind` is never used
[INFO] [stdout]   --> src/render/open_gl/gl_frame_buffer.rs:37:5
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub trait GLFrameBuffer {
[INFO] [stdout]    |           ------------- method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 37 |     fn unbind(&self);
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `index_old` is never read
[INFO] [stdout]   --> src/helpers/load_obj.rs:10:2
[INFO] [stdout]    |
[INFO] [stdout]  9 | struct TmpIndex {
[INFO] [stdout]    |        -------- field in this struct
[INFO] [stdout] 10 |     index_old: usize,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TmpIndex` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/core/buffer_geometry.rs:457:14
[INFO] [stdout]     |
[INFO] [stdout] 457 |     pub fn lock(&mut self) -> LockResult<MutexGuard<BufferGeometry>> {
[INFO] [stdout]     |                 ^^^^^^^^^                ^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 457 |     pub fn lock(&mut self) -> LockResult<MutexGuard<'_, BufferGeometry>> {
[INFO] [stdout]     |                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `path`, `images`, and `textures` are never read
[INFO] [stdout]   --> src/helpers/load_gltf.rs:71:2
[INFO] [stdout]    |
[INFO] [stdout] 70 | struct Context {
[INFO] [stdout]    |        ------- fields in this struct
[INFO] [stdout] 71 |     path: PathBuf,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 72 |     doc: Document,
[INFO] [stdout] 73 |     images: Vec<TextureData>,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 74 |     textures: Vec<SharedTexture2D>,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/core/material.rs:51:28
[INFO] [stdout]    |
[INFO] [stdout] 51 |     pub fn get_shader_program(&self) -> LockResult<MutexGuard<ShaderProgram>> {
[INFO] [stdout]    |                               ^^^^^                ^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                               |
[INFO] [stdout]    |                               the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 51 |     pub fn get_shader_program(&self) -> LockResult<MutexGuard<'_, ShaderProgram>> {
[INFO] [stdout]    |                                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/core/material.rs:217:14
[INFO] [stdout]     |
[INFO] [stdout] 217 |     pub fn lock(&mut self, index: usize) -> LockResult<MutexGuard<Material>> {
[INFO] [stdout]     |                 ^^^^^^^^^ the lifetime is elided here  ^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 217 |     pub fn lock(&mut self, index: usize) -> LockResult<MutexGuard<'_, Material>> {
[INFO] [stdout]     |                                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/core/texture.rs:233:14
[INFO] [stdout]     |
[INFO] [stdout] 233 |     pub fn lock(&mut self) -> LockResult<MutexGuard<Texture2D>> {
[INFO] [stdout]     |                 ^^^^^^^^^                ^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 233 |     pub fn lock(&mut self) -> LockResult<MutexGuard<'_, Texture2D>> {
[INFO] [stdout]     |                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> src/core/texture.rs:270:16
[INFO] [stdout]     |
[INFO] [stdout] 270 |             _ => panic!(format!("can't convert color type from: {:?}", color_type)),
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]     = note: the `panic!()` macro supports formatting, so there's no need for the `format!()` macro here
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]     = note: `#[warn(non_fmt_panics)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: remove the `format!(..)` macro call
[INFO] [stdout]     |
[INFO] [stdout] 270 -             _ => panic!(format!("can't convert color type from: {:?}", color_type)),
[INFO] [stdout] 270 +             _ => panic!("can't convert color type from: {:?}", color_type),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/core/buffer_geometry.rs:457:14
[INFO] [stdout]     |
[INFO] [stdout] 457 |     pub fn lock(&mut self) -> LockResult<MutexGuard<BufferGeometry>> {
[INFO] [stdout]     |                 ^^^^^^^^^                ^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 457 |     pub fn lock(&mut self) -> LockResult<MutexGuard<'_, BufferGeometry>> {
[INFO] [stdout]     |                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/core/material.rs:51:28
[INFO] [stdout]    |
[INFO] [stdout] 51 |     pub fn get_shader_program(&self) -> LockResult<MutexGuard<ShaderProgram>> {
[INFO] [stdout]    |                               ^^^^^                ^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                               |
[INFO] [stdout]    |                               the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 51 |     pub fn get_shader_program(&self) -> LockResult<MutexGuard<'_, ShaderProgram>> {
[INFO] [stdout]    |                                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/core/frame_buffer.rs:75:14
[INFO] [stdout]    |
[INFO] [stdout] 75 |     pub fn lock(&mut self) -> LockResult<MutexGuard<FrameBuffer>> {
[INFO] [stdout]    |                 ^^^^^^^^^                ^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 75 |     pub fn lock(&mut self) -> LockResult<MutexGuard<'_, FrameBuffer>> {
[INFO] [stdout]    |                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/core/material.rs:217:14
[INFO] [stdout]     |
[INFO] [stdout] 217 |     pub fn lock(&mut self, index: usize) -> LockResult<MutexGuard<Material>> {
[INFO] [stdout]     |                 ^^^^^^^^^ the lifetime is elided here  ^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 217 |     pub fn lock(&mut self, index: usize) -> LockResult<MutexGuard<'_, Material>> {
[INFO] [stdout]     |                                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/core/render_buffer.rs:59:14
[INFO] [stdout]    |
[INFO] [stdout] 59 |     pub fn lock(&mut self) -> LockResult<MutexGuard<RenderBuffer>> {
[INFO] [stdout]    |                 ^^^^^^^^^                ^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 59 |     pub fn lock(&mut self) -> LockResult<MutexGuard<'_, RenderBuffer>> {
[INFO] [stdout]    |                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/core/texture.rs:233:14
[INFO] [stdout]     |
[INFO] [stdout] 233 |     pub fn lock(&mut self) -> LockResult<MutexGuard<Texture2D>> {
[INFO] [stdout]     |                 ^^^^^^^^^                ^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 233 |     pub fn lock(&mut self) -> LockResult<MutexGuard<'_, Texture2D>> {
[INFO] [stdout]     |                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> src/core/texture.rs:270:16
[INFO] [stdout]     |
[INFO] [stdout] 270 |             _ => panic!(format!("can't convert color type from: {:?}", color_type)),
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]     = note: the `panic!()` macro supports formatting, so there's no need for the `format!()` macro here
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]     = note: `#[warn(non_fmt_panics)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: remove the `format!(..)` macro call
[INFO] [stdout]     |
[INFO] [stdout] 270 -             _ => panic!(format!("can't convert color type from: {:?}", color_type)),
[INFO] [stdout] 270 +             _ => panic!("can't convert color type from: {:?}", color_type),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/core/frame_buffer.rs:75:14
[INFO] [stdout]    |
[INFO] [stdout] 75 |     pub fn lock(&mut self) -> LockResult<MutexGuard<FrameBuffer>> {
[INFO] [stdout]    |                 ^^^^^^^^^                ^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 75 |     pub fn lock(&mut self) -> LockResult<MutexGuard<'_, FrameBuffer>> {
[INFO] [stdout]    |                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/core/render_buffer.rs:59:14
[INFO] [stdout]    |
[INFO] [stdout] 59 |     pub fn lock(&mut self) -> LockResult<MutexGuard<RenderBuffer>> {
[INFO] [stdout]    |                 ^^^^^^^^^                ^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 59 |     pub fn lock(&mut self) -> LockResult<MutexGuard<'_, RenderBuffer>> {
[INFO] [stdout]    |                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `defaultMaterial` should have a snake case name
[INFO] [stdout]   --> src/helpers/load_gltf.rs:77:2
[INFO] [stdout]    |
[INFO] [stdout] 77 |     defaultMaterial: SharedMaterials,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `default_material`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `defaultMaterial` should have a snake case name
[INFO] [stdout]   --> src/helpers/load_gltf.rs:77:2
[INFO] [stdout]    |
[INFO] [stdout] 77 |     defaultMaterial: SharedMaterials,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `default_material`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ShaderProgram`
[INFO] [stdout]   --> examples/e7.rs:10:3
[INFO] [stdout]    |
[INFO] [stdout] 10 |         ShaderProgram, ShaderTag, SharedGeometry, SharedMaterials,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> examples/e7.rs:232:85
[INFO] [stdout]     |
[INFO] [stdout] 232 |                 transform_camera.position.x = ((x_prog * (PI_f64 * 2.0)).cos() * radius) as f32;;
[INFO] [stdout]     |                                                                                                 ^ help: remove this semicolon
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(redundant_semicolons)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ShaderProgram`
[INFO] [stdout]  --> examples/e1.rs:6:63
[INFO] [stdout]   |
[INFO] [stdout] 6 |         create_world, EntityRelations, Material, PerspectiveCamera, ShaderProgram, SharedGeometry,
[INFO] [stdout]   |                                                                     ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> examples/e1.rs:244:85
[INFO] [stdout]     |
[INFO] [stdout] 244 |                 transform_camera.position.x = ((x_prog * (PI_f64 * 2.0)).cos() * radius) as f32;;
[INFO] [stdout]     |                                                                                                 ^ help: remove this semicolon
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(redundant_semicolons)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ShaderProgram`
[INFO] [stdout]   --> examples/e5.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 20 |         ShaderProgram,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> examples/e5.rs:236:85
[INFO] [stdout]     |
[INFO] [stdout] 236 |                 transform_camera.position.x = ( (x_prog * (PI_f64*2.0)).cos() * radius ) as f32;;
[INFO] [stdout]     |                                                                                                 ^ help: remove this semicolon
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(redundant_semicolons)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: found module declaration for lib.rs
[INFO] [stdout]  --> resource-manager/main.rs:6:1
[INFO] [stdout]   |
[INFO] [stdout] 6 | mod lib;
[INFO] [stdout]   | ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: lib.rs is the root of this crate's library target
[INFO] [stdout]   = help: to refer to it from other targets, use the library's name as the path
[INFO] [stdout]   = note: `#[warn(special_module_name)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ShaderProgram`
[INFO] [stdout]   --> examples/e8.rs:10:3
[INFO] [stdout]    |
[INFO] [stdout] 10 |         ShaderProgram, ShaderTag, SharedFrameBuffer, SharedGeometry, SharedMaterials,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> examples/e8.rs:314:85
[INFO] [stdout]     |
[INFO] [stdout] 314 |                 transform_camera.position.x = ((x_prog * (PI_f64 * 2.0)).cos() * radius) as f32;;
[INFO] [stdout]     |                                                                                                 ^ help: remove this semicolon
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(redundant_semicolons)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]   --> resource-manager/lib.rs:22:10
[INFO] [stdout]    |
[INFO] [stdout] 22 | #[derive(Serialize, Deserialize, Debug, Clone, PartialEq)]
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `names` and `prod`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Serialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout]    = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]   --> resource-manager/lib.rs:22:21
[INFO] [stdout]    |
[INFO] [stdout] 22 | #[derive(Serialize, Deserialize, Debug, Clone, PartialEq)]
[INFO] [stdout]    |                     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `names` and `prod`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]   --> resource-manager/lib.rs:29:10
[INFO] [stdout]    |
[INFO] [stdout] 29 | #[derive(Serialize, Deserialize, Debug, Clone)]
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `names` and `prod`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Serialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]   --> resource-manager/lib.rs:29:21
[INFO] [stdout]    |
[INFO] [stdout] 29 | #[derive(Serialize, Deserialize, Debug, Clone)]
[INFO] [stdout]    |                     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `names` and `prod`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]   --> resource-manager/lib.rs:37:10
[INFO] [stdout]    |
[INFO] [stdout] 37 | #[derive(Serialize, Deserialize, Debug, Clone)]
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `names` and `prod`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Serialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ShaderProgram`
[INFO] [stdout]   --> examples/e4.rs:10:70
[INFO] [stdout]    |
[INFO] [stdout] 10 |         create_world, BufferType, Material, PerspectiveCamera, PointLight, ShaderProgram,
[INFO] [stdout]    |                                                                            ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> examples/e4.rs:192:85
[INFO] [stdout]     |
[INFO] [stdout] 192 |                 transform_camera.position.x = ((x_prog * (PI_f64 * 2.0)).cos() * radius) as f32;;
[INFO] [stdout]     |                                                                                                 ^ help: remove this semicolon
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(redundant_semicolons)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]   --> resource-manager/lib.rs:37:21
[INFO] [stdout]    |
[INFO] [stdout] 37 | #[derive(Serialize, Deserialize, Debug, Clone)]
[INFO] [stdout]    |                     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `names` and `prod`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[macro_use]` attribute cannot be used on use statements
[INFO] [stdout]   --> resource-manager/main.rs:10:1
[INFO] [stdout]    |
[INFO] [stdout] 10 | #[macro_use]
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = help: `#[macro_use]` can be applied to crates, extern crates, and modules
[INFO] [stdout]    = note: `#[warn(unused_attributes)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ShaderProgram`
[INFO] [stdout]  --> examples/e2.rs:7:63
[INFO] [stdout]   |
[INFO] [stdout] 7 |         create_world, EntityRelations, Material, PerspectiveCamera, ShaderProgram, ShaderTag, SharedGeometry, SharedMaterials,
[INFO] [stdout]   |                                                                     ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> examples/e2.rs:236:85
[INFO] [stdout]     |
[INFO] [stdout] 236 |                 transform_camera.position.x = ((x_prog * (PI_f64 * 2.0)).cos() * radius) as f32;;
[INFO] [stdout]     |                                                                                                 ^ help: remove this semicolon
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(redundant_semicolons)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ShaderProgram`
[INFO] [stdout]   --> examples/e3.rs:22:3
[INFO] [stdout]    |
[INFO] [stdout] 22 |         ShaderProgram,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> examples/e3.rs:166:85
[INFO] [stdout]     |
[INFO] [stdout] 166 |                 transform_camera.position.x = ( (x_prog * (PI_f64*2.0)).cos() * radius ) as f32;;
[INFO] [stdout]     |                                                                                                 ^ help: remove this semicolon
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(redundant_semicolons)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> examples/e6.rs:220:85
[INFO] [stdout]     |
[INFO] [stdout] 220 |                 transform_camera.position.x = ( (x_prog * (PI_f64*2.0)).cos() * radius ) as f32;;
[INFO] [stdout]     |                                                                                                 ^ help: remove this semicolon
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(redundant_semicolons)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: found module declaration for lib.rs
[INFO] [stdout]  --> resource-manager/main.rs:6:1
[INFO] [stdout]   |
[INFO] [stdout] 6 | mod lib;
[INFO] [stdout]   | ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: lib.rs is the root of this crate's library target
[INFO] [stdout]   = help: to refer to it from other targets, use the library's name as the path
[INFO] [stdout]   = note: `#[warn(special_module_name)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]   --> resource-manager/lib.rs:22:10
[INFO] [stdout]    |
[INFO] [stdout] 22 | #[derive(Serialize, Deserialize, Debug, Clone, PartialEq)]
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `names` and `prod`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Serialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout]    = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]   --> resource-manager/lib.rs:22:21
[INFO] [stdout]    |
[INFO] [stdout] 22 | #[derive(Serialize, Deserialize, Debug, Clone, PartialEq)]
[INFO] [stdout]    |                     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `names` and `prod`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]   --> resource-manager/lib.rs:29:10
[INFO] [stdout]    |
[INFO] [stdout] 29 | #[derive(Serialize, Deserialize, Debug, Clone)]
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `names` and `prod`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Serialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]   --> resource-manager/lib.rs:29:21
[INFO] [stdout]    |
[INFO] [stdout] 29 | #[derive(Serialize, Deserialize, Debug, Clone)]
[INFO] [stdout]    |                     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `names` and `prod`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]   --> resource-manager/lib.rs:37:10
[INFO] [stdout]    |
[INFO] [stdout] 37 | #[derive(Serialize, Deserialize, Debug, Clone)]
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `names` and `prod`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Serialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]   --> resource-manager/lib.rs:37:21
[INFO] [stdout]    |
[INFO] [stdout] 37 | #[derive(Serialize, Deserialize, Debug, Clone)]
[INFO] [stdout]    |                     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `names` and `prod`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[macro_use]` attribute cannot be used on use statements
[INFO] [stdout]   --> resource-manager/main.rs:10:1
[INFO] [stdout]    |
[INFO] [stdout] 10 | #[macro_use]
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = help: `#[macro_use]` can be applied to crates, extern crates, and modules
[INFO] [stdout]    = note: `#[warn(unused_attributes)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ResourceManager` is never constructed
[INFO] [stdout]   --> resource-manager/lib.rs:43:12
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub struct ResourceManager {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `name_str` is never used
[INFO] [stdout]   --> resource-manager/lib.rs:50:9
[INFO] [stdout]    |
[INFO] [stdout] 49 | impl Resource {
[INFO] [stdout]    | ------------- method in this implementation
[INFO] [stdout] 50 |     pub fn name_str(&self) -> String {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> resource-manager/lib.rs:56:9
[INFO] [stdout]     |
[INFO] [stdout]  55 | impl ResourceManager {
[INFO] [stdout]     | -------------------- associated items in this implementation
[INFO] [stdout]  56 |     pub fn parse_package_list(data: &str) -> Result<PackageList, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  61 |     pub fn set_package_list(&mut self, package_list: PackageList) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  65 |     pub fn load_package_list(&mut self, path: &PathBuf) -> Result<(), String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  74 |     pub fn set_package_list_from_str(&mut self, data: &str) -> Result<(), String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  80 |     pub fn get_package_list(&self) -> Result<&PackageList, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  84 |     pub fn clear(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  90 |     pub fn add_package_data(&mut self, data: &[u8], name: &str) -> Result<(), String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 131 |     pub fn get_resource_data(&self, name: &str) -> Option<&Vec<u8>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 135 |     pub fn remove_package(&mut self, name: &str) -> Result<(), String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 157 |     pub fn load_package_from_disk(&mut self, name: &str) -> Result<(), String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 185 |     pub fn load_all_packages(&mut self) -> Result<(), String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 201 |     pub fn load_all(&mut self, path: &PathBuf) -> Result<(), String> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 206 |     fn get_package_list_mut(&mut self) -> Result<&mut PackageList, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> resource-manager/lib.rs:22:10
[INFO] [stdout]    |
[INFO] [stdout] 22 | #[derive(Serialize, Deserialize, Debug, Clone, PartialEq)]
[INFO] [stdout]    |          ^--------
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `Serialize` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_Resource`
[INFO] [stdout] 23 | pub struct Resource {
[INFO] [stdout]    |            -------- `Resource` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]    = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> resource-manager/lib.rs:22:21
[INFO] [stdout]    |
[INFO] [stdout] 22 | #[derive(Serialize, Deserialize, Debug, Clone, PartialEq)]
[INFO] [stdout]    |                     ^----------
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     `Deserialize` is not local
[INFO] [stdout]    |                     move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Resource`
[INFO] [stdout] 23 | pub struct Resource {
[INFO] [stdout]    |            -------- `Resource` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> resource-manager/lib.rs:29:10
[INFO] [stdout]    |
[INFO] [stdout] 29 | #[derive(Serialize, Deserialize, Debug, Clone)]
[INFO] [stdout]    |          ^--------
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `Serialize` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_Package`
[INFO] [stdout] 30 | pub struct Package {
[INFO] [stdout]    |            ------- `Package` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> resource-manager/lib.rs:29:21
[INFO] [stdout]    |
[INFO] [stdout] 29 | #[derive(Serialize, Deserialize, Debug, Clone)]
[INFO] [stdout]    |                     ^----------
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     `Deserialize` is not local
[INFO] [stdout]    |                     move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Package`
[INFO] [stdout] 30 | pub struct Package {
[INFO] [stdout]    |            ------- `Package` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> resource-manager/lib.rs:37:10
[INFO] [stdout]    |
[INFO] [stdout] 37 | #[derive(Serialize, Deserialize, Debug, Clone)]
[INFO] [stdout]    |          ^--------
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `Serialize` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_PackageList`
[INFO] [stdout] 38 | pub struct PackageList {
[INFO] [stdout]    |            ----------- `PackageList` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> resource-manager/lib.rs:37:21
[INFO] [stdout]    |
[INFO] [stdout] 37 | #[derive(Serialize, Deserialize, Debug, Clone)]
[INFO] [stdout]    |                     ^----------
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     `Deserialize` is not local
[INFO] [stdout]    |                     move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_PackageList`
[INFO] [stdout] 38 | pub struct PackageList {
[INFO] [stdout]    |            ----------- `PackageList` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Path::join` that must be used
[INFO] [stdout]    --> resource-manager/lib.rs:174:4
[INFO] [stdout]     |
[INFO] [stdout] 174 |             path.join(&res.path);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 174 |             let _ = path.join(&res.path);
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ResourceManager` is never constructed
[INFO] [stdout]   --> resource-manager/lib.rs:43:12
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub struct ResourceManager {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `name_str` is never used
[INFO] [stdout]   --> resource-manager/lib.rs:50:9
[INFO] [stdout]    |
[INFO] [stdout] 49 | impl Resource {
[INFO] [stdout]    | ------------- method in this implementation
[INFO] [stdout] 50 |     pub fn name_str(&self) -> String {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> resource-manager/lib.rs:56:9
[INFO] [stdout]     |
[INFO] [stdout]  55 | impl ResourceManager {
[INFO] [stdout]     | -------------------- associated items in this implementation
[INFO] [stdout]  56 |     pub fn parse_package_list(data: &str) -> Result<PackageList, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  61 |     pub fn set_package_list(&mut self, package_list: PackageList) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  65 |     pub fn load_package_list(&mut self, path: &PathBuf) -> Result<(), String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  74 |     pub fn set_package_list_from_str(&mut self, data: &str) -> Result<(), String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  80 |     pub fn get_package_list(&self) -> Result<&PackageList, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  84 |     pub fn clear(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  90 |     pub fn add_package_data(&mut self, data: &[u8], name: &str) -> Result<(), String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 131 |     pub fn get_resource_data(&self, name: &str) -> Option<&Vec<u8>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 135 |     pub fn remove_package(&mut self, name: &str) -> Result<(), String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 157 |     pub fn load_package_from_disk(&mut self, name: &str) -> Result<(), String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 185 |     pub fn load_all_packages(&mut self) -> Result<(), String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 201 |     pub fn load_all(&mut self, path: &PathBuf) -> Result<(), String> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 206 |     fn get_package_list_mut(&mut self) -> Result<&mut PackageList, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> resource-manager/lib.rs:22:10
[INFO] [stdout]    |
[INFO] [stdout] 22 | #[derive(Serialize, Deserialize, Debug, Clone, PartialEq)]
[INFO] [stdout]    |          ^--------
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `Serialize` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_Resource`
[INFO] [stdout] 23 | pub struct Resource {
[INFO] [stdout]    |            -------- `Resource` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]    = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> resource-manager/lib.rs:22:21
[INFO] [stdout]    |
[INFO] [stdout] 22 | #[derive(Serialize, Deserialize, Debug, Clone, PartialEq)]
[INFO] [stdout]    |                     ^----------
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     `Deserialize` is not local
[INFO] [stdout]    |                     move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Resource`
[INFO] [stdout] 23 | pub struct Resource {
[INFO] [stdout]    |            -------- `Resource` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> resource-manager/lib.rs:29:10
[INFO] [stdout]    |
[INFO] [stdout] 29 | #[derive(Serialize, Deserialize, Debug, Clone)]
[INFO] [stdout]    |          ^--------
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `Serialize` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_Package`
[INFO] [stdout] 30 | pub struct Package {
[INFO] [stdout]    |            ------- `Package` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> resource-manager/lib.rs:29:21
[INFO] [stdout]    |
[INFO] [stdout] 29 | #[derive(Serialize, Deserialize, Debug, Clone)]
[INFO] [stdout]    |                     ^----------
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     `Deserialize` is not local
[INFO] [stdout]    |                     move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Package`
[INFO] [stdout] 30 | pub struct Package {
[INFO] [stdout]    |            ------- `Package` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> resource-manager/lib.rs:37:10
[INFO] [stdout]    |
[INFO] [stdout] 37 | #[derive(Serialize, Deserialize, Debug, Clone)]
[INFO] [stdout]    |          ^--------
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `Serialize` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_PackageList`
[INFO] [stdout] 38 | pub struct PackageList {
[INFO] [stdout]    |            ----------- `PackageList` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> resource-manager/lib.rs:37:21
[INFO] [stdout]    |
[INFO] [stdout] 37 | #[derive(Serialize, Deserialize, Debug, Clone)]
[INFO] [stdout]    |                     ^----------
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     `Deserialize` is not local
[INFO] [stdout]    |                     move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_PackageList`
[INFO] [stdout] 38 | pub struct PackageList {
[INFO] [stdout]    |            ----------- `PackageList` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Path::join` that must be used
[INFO] [stdout]    --> resource-manager/lib.rs:174:4
[INFO] [stdout]     |
[INFO] [stdout] 174 |             path.join(&res.path);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 174 |             let _ = path.join(&res.path);
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [optimized + debuginfo] target(s) in 1m 07s
[INFO] running `Command { std: "docker" "inspect" "ac74ba0ae6dd72fe4a85f55d5e2880a4d5f172a362c91370be31422028c9b78a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ac74ba0ae6dd72fe4a85f55d5e2880a4d5f172a362c91370be31422028c9b78a", kill_on_drop: false }`
[INFO] [stdout] ac74ba0ae6dd72fe4a85f55d5e2880a4d5f172a362c91370be31422028c9b78a
